package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.regularizerecord.EmployeeRegularizeRecordSaveReqVO;
import com.smartleanx.module.hrm.controller.admin.employee.vo.EmployeeBasicInfoRespVo;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeRegularizeRecordDO;

import java.util.Collection;
import java.util.List;
import java.util.Map;


/**
 * 转正记录 Service 接口
 *
 * @author 精益大师
 */
public interface EmployeeRegularizeRecordService {

    /**
     * 创建转正记录
     *
     * @param recordDO 创建信息
     * @return 编号
     */
    int createRegularizeRecord(@Valid EmployeeRegularizeRecordDO recordDO);

    /**
     * 更新转正记录
     *
     * @param updateObj 更新信息
     */
    void updateRegularizeRecord(@Valid EmployeeRegularizeRecordDO updateObj);

    /**
     * 获得转正记录
     *
     * @param id 编号
     * @return 转正记录
     */
    EmployeeRegularizeRecordDO getEmployeeRegularizeRecord(Long id);

    /**
     * 根据员工id获取所有转正记录
     * @param employeeId
     * @return
     */
    List<EmployeeRegularizeRecordDO> getRegularizeRecordList(Long employeeId);

    /**
     * 根据员工id集合获取所有转正记录
     *
     * @param employeeIdList
     * @return
     */
    List<EmployeeRegularizeRecordDO> getRegularizeRecordList(Collection<Long> employeeIdList);

    /**
     * 返回员工最后一条代转在记录
     * @return
     */
    List<EmployeeRegularizeRecordDO> getRegularizeRecordList();

    void deleteEmployeeRegularizeRecord(Long id);
}
